package action.bbs.chapter;

import intercepter.aware.Chapter_Awa;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import dao.Chapter_dao;

import util.Paging;
import vo.ChapterVO;


public class ChapterList_A implements Chapter_Awa{

	private ArrayList<ChapterVO> all_list; //모든 게시물을 담을 곳 
	private ChapterVO[] view_list;//화면에 보여질 목록
	private int nowPage = 1;//현재 페이지 
	private int rowTotal;//총 게시물 수 
	private int blockList;// 한 페이지당 표현할 게시물 수
	private int blockPage;//표현할 페이지 수
	
	
	
	//페이징 기법의 html코드를 생산하는 객체
	private Paging page;
	
	//표현할 페이징 코드
	private String pagingCode;

	
	private Chapter_dao dao;
	
	
	@Override
	public void setDao(Chapter_dao dao) {
		// TODO Auto-generated method stub
		this.dao = dao;
	}
	public String execute() throws Exception{
		//전체 게시물의 수를 구한다.
		rowTotal = dao.getChapterCount();
		
		//block당 값 설정
		blockList = 7;
		blockPage = 5;
		
		//페이징 기법에 따른 코드 생성
		page = new Paging(nowPage,rowTotal,blockList,blockPage);
		
		//코드 값은 page 객체 내부에 있는 StringBuffer에 
		//있다. 그로부터 문자열로 받는다.
		pagingCode = page.getSb().toString();
		
		//표현할 게시물 들만 가져온다
		
		int end = rowTotal;
		int start = page.getStartRow();
		if(page.getEndRow()<rowTotal)
			end = page.getEndRow();
	
		Map<String,String> map = new HashMap<String,String>();
		map.put("bname", "BBS");
		map.put("begin", String.valueOf(start));
		map.put("end",String.valueOf(end));
		
		view_list = dao.getChapterPaging(map);
		return "success";
	}
	
	public ArrayList<ChapterVO> getAll_list() {
		return all_list;
	}

	public void setAll_list(ArrayList<ChapterVO> all_list) {
		this.all_list = all_list;
	}

	public ChapterVO[] getView_list() {
		return view_list;
	}

	public void setView_list(ChapterVO[] view_list) {
		this.view_list = view_list;
	}

	public int getNowPage() {
		return nowPage;
	}

	public void setNowPage(int nowPage) {
		this.nowPage = nowPage;
	}

	public int getRowTotal() {
		return rowTotal;
	}

	public void setRowTotal(int rowTotal) {
		this.rowTotal = rowTotal;
	}

	public int getBlockList() {
		return blockList;
	}

	public void setBlockList(int blockList) {
		this.blockList = blockList;
	}

	public int getBlockPage() {
		return blockPage;
	}

	public void setBlockPage(int blockPage) {
		this.blockPage = blockPage;
	}

	public Paging getPage() {
		return page;
	}

	public void setPage(Paging page) {
		this.page = page;
	}

	public String getPagingCode() {
		return pagingCode;
	}

	public void setPagingCode(String pagingCode) {
		this.pagingCode = pagingCode;
	}
	

	
	
	
}
